API é a sigla para Application Programming Interface.
É uma interface de comunicação que um sistema oferece para que outros sistemas acessem suas funções, dados, serviços e recursos.
Possibilitam utilizar funções de um aplicativo dentro de outro, facilitando o trabalho dos desenvolvedores.
Permitem o acesso a dados, sem a necessidade de raspagem de superfície (scraping) ou coleta manual.
São internas de uma empresa e são usadas apenas para conectar sistemas e dados dentro da empresa.
São abertas ao público e podem ser usadas por qualquer pessoa.
Pode ou não haver alguma autorização e/ou custo associado a esses tipos de APIs.
Acessíveis apenas por desenvolvedores externos autorizados, em nome de empresas parceiras.
As APIs funcionam através de um protocolo, um conjunto de instruções, padrões e regras que definem como os sistemas devem se comunicar.
Elas estabelecem métodos de requisição, formatos de dados a serem recebidos ou retornados, autenticação e autorização de acesso, entre outros aspectos técnicos.
Quando um software utiliza uma API, ele envia uma requisição seguindo as diretrizes estabelecidas pela interface, e em resposta recebe os dados ou realiza as ações desejadas.
Uma requisição é enviada ao sistema que disponibiliza uma API (servidor) por um cliente (que pode ser um navegador, um aplicativo móvel ou outro servidor). Geralmente segue o protocolo HTTP (Hypertext Transfer Protocol).
O servidor faz o processamento da requisição, que pode envolver uma consulta a uma base de dados ou acesso a outras funcionalidades.
O servidor envia uma resposta ao cliente. Geralmente inclui um código de status, indicativo de sucesso ou falha na requisição, e os dados solicitados.
Os principais métodos de requisição são:
get: requisição para obter, visualizar ou extrair dados;
post: requisição para criar ou enviar novos dados;
put: requisição para editar ou atualizar dados;
delete: requisição para remover dados.
É comum que alguns sistemas exijam o uso de chaves para limitar e controlar a quantidade de requisições de acesso.
Essa medida visa a segurança do próprio sistema, garantindo a sua disponibilidade e evitando por exemplo ataques de negação de serviço (DoS).
Além de ajudar a detectar atividades suspeitas, as chaves de acesso também servem para identificar, monitorar e registrar quem consome a API, a fim de obter insights a respeito dos padrões de uso do serviço e aprimorá-lo.
Alguns sistemas monetizam o consumo das API’s.
Ainda assim, alguns sistemas permitem que sejam feitas requisições keyless.
Endpoints são funções ou recursos da API que, dado sua estrutura hierárquica (aninhada, ou em árvore), podem ser acessadas diretamente pelo sistema cliente.
Para acessar um endpoint específico dentro de uma API, basta utilizarmos o URL (Uniform Resource Locator) principal da API seguido do caminho correspondente a esse endpoint.
É comum utilizarmos chaves {} como placeholders ao nos referirmos a endpoints.
Podemos, ainda utilizar parâmetros simples de consulta para filtrar os resultados de uma requisição. Ex.:
/usuarios?sexo=masculino
Ao fazer uma requisição, os dados geralmente retornam em arquivos no formato JSON (Java Script Object Notation)
Padrão de indústria
Permite o acesso e o armazenamento de diferentes tipos de dados
Permite a interoperabilidade do formato entre tantos frameworks e linguagens diferentes
É facilmente legível tanto por máquinas quanto por humanos
Estruturação hierárquica (conjunto chave-valor dentro de chaves)
Ausência de Data Type
Sem comentários
Melhor para trabalhar com grandes quanrtidades de dados
Permite comentários
Mais pesado e menos legível para humanos
Menos flexível
Inicialmente, para mostrar de forma mais didática as etapas do processo de requisição, utilizaremos uma API pública sem chave que disponibiliza as informações de todos os pokemons presentes nos jogos.